<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>指尖校园的爱的表白墙</title>
    <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
    <link rel="stylesheet" href="/wlzz/botUI/botui.min.css" />
    <link rel="stylesheet" href="/wlzz/botUI/botui-theme-default.css" />
    <script src="/wlzz/botUI/vue.min.js"></script>
    <script src="/wlzz/botUI/botui.min.js"></script>
    <script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
    <script src="/wlzz/layer_mobile/layer.js"></script>
    <style>
        .ajax_input{
            height: 26px;
            width: 150px;
            margin-right: 4px;
            border: 0px;
            border-bottom: 1px solid #CCC;
        }
        .ajax_button{
            margin-top: 3px;
            height: 20px;
            padding: 5px 5px;
            background-color: #fff;
            color: #40AFFE;
            border: 0px;
        }
    </style>
</head>
<style type="text/css">
    a,img{border:0;}
    .botui-app-container{
        z-index:999;
    }
    *{margin:0;padding:0;list-style-type:none;}
    #sakura{
        width: 100%;
        height: 100%;
        position:absolute;
        z-index:-1;
    }
    #sayLove_root{
        overflow: auto;
    }
    #seeDiv{
        height: 100%;
    }
    html, body { height:100%}
    input::-webkit-input-placeholder{
        color: #cccccc;
    }
    input::-moz-placeholder{   /* Mozilla Firefox 19+ */
        color: #cccccc;
    }
    input:-moz-placeholder{    /* Mozilla Firefox 4 to 18 */
        color:#cccccc;
    }
    input:-ms-input-placeholder{  /* Internet Explorer 10-11 */
        color:#cccccc;
    }
</style>
<body>
<input hidden id="username">
<input hidden id="toUsername">
<input hidden id="content">
<input hidden id="niming">
<div id="seeDiv">
<canvas id="sakura"></canvas>
<script id="sakura_point_vsh" type="x-shader/x_vertex">
uniform mat4 uProjection;
uniform mat4 uModelview;
uniform vec3 uResolution;
uniform vec3 uOffset;
uniform vec3 uDOF;  //x:focus distance, y:focus radius, z:max radius
uniform vec3 uFade; //x:start distance, y:half distance, z:near fade start

attribute vec3 aPosition;
attribute vec3 aEuler;
attribute vec2 aMisc; //x:size, y:fade

varying vec3 pposition;
varying float psize;
varying float palpha;
varying float pdist;

//varying mat3 rotMat;
varying vec3 normX;
varying vec3 normY;
varying vec3 normZ;
varying vec3 normal;

varying float diffuse;
varying float specular;
varying float rstop;
varying float distancefade;

void main(void) {
    // Projection is based on vertical angle
    vec4 pos = uModelview * vec4(aPosition + uOffset, 1.0);
    gl_Position = uProjection * pos;
    gl_PointSize = aMisc.x * uProjection[1][1] / -pos.z * uResolution.y * 0.5;

    pposition = pos.xyz;
    psize = aMisc.x;
    pdist = length(pos.xyz);
    palpha = smoothstep(0.0, 1.0, (pdist - 0.1) / uFade.z);

    vec3 elrsn = sin(aEuler);
    vec3 elrcs = cos(aEuler);
    mat3 rotx = mat3(
        1.0, 0.0, 0.0,
        0.0, elrcs.x, elrsn.x,
        0.0, -elrsn.x, elrcs.x
    );
    mat3 roty = mat3(
        elrcs.y, 0.0, -elrsn.y,
        0.0, 1.0, 0.0,
        elrsn.y, 0.0, elrcs.y
    );
    mat3 rotz = mat3(
        elrcs.z, elrsn.z, 0.0,
        -elrsn.z, elrcs.z, 0.0,
        0.0, 0.0, 1.0
    );
    mat3 rotmat = rotx * roty * rotz;
    normal = rotmat[2];

    mat3 trrotm = mat3(
        rotmat[0][0], rotmat[1][0], rotmat[2][0],
        rotmat[0][1], rotmat[1][1], rotmat[2][1],
        rotmat[0][2], rotmat[1][2], rotmat[2][2]
    );
    normX = trrotm[0];
    normY = trrotm[1];
    normZ = trrotm[2];

    const vec3 lit = vec3(0.6917144638660746, 0.6917144638660746, -0.20751433915982237);

    float tmpdfs = dot(lit, normal);
    if(tmpdfs < 0.0) {
        normal = -normal;
        tmpdfs = dot(lit, normal);
    }
    diffuse = 0.4 + tmpdfs;

    vec3 eyev = normalize(-pos.xyz);
    if(dot(eyev, normal) > 0.0) {
        vec3 hv = normalize(eyev + lit);
        specular = pow(max(dot(hv, normal), 0.0), 20.0);
    }
    else {
        specular = 0.0;
    }

    rstop = clamp((abs(pdist - uDOF.x) - uDOF.y) / uDOF.z, 0.0, 1.0);
    rstop = pow(rstop, 0.5);
    //-0.69315 = ln(0.5)
    distancefade = min(1.0, exp((uFade.x - pdist) * 0.69315 / uFade.y));
}
</script>
<script id="sakura_point_fsh" type="x-shader/x_fragment">
#ifdef GL_ES
//precision mediump float;
precision highp float;
#endif

uniform vec3 uDOF;  //x:focus distance, y:focus radius, z:max radius
uniform vec3 uFade; //x:start distance, y:half distance, z:near fade start

const vec3 fadeCol = vec3(0.08, 0.03, 0.06);

varying vec3 pposition;
varying float psize;
varying float palpha;
varying float pdist;

//varying mat3 rotMat;
varying vec3 normX;
varying vec3 normY;
varying vec3 normZ;
varying vec3 normal;

varying float diffuse;
varying float specular;
varying float rstop;
varying float distancefade;

float ellipse(vec2 p, vec2 o, vec2 r) {
    vec2 lp = (p - o) / r;
    return length(lp) - 1.0;
}

void main(void) {
    vec3 p = vec3(gl_PointCoord - vec2(0.5, 0.5), 0.0) * 2.0;
    vec3 d = vec3(0.0, 0.0, -1.0);
    float nd = normZ.z; //dot(-normZ, d);
    if(abs(nd) < 0.0001) discard;

    float np = dot(normZ, p);
    vec3 tp = p + d * np / nd;
    vec2 coord = vec2(dot(normX, tp), dot(normY, tp));

    //angle = 15 degree
    const float flwrsn = 0.258819045102521;
    const float flwrcs = 0.965925826289068;
    mat2 flwrm = mat2(flwrcs, -flwrsn, flwrsn, flwrcs);
    vec2 flwrp = vec2(abs(coord.x), coord.y) * flwrm;

    float r;
    if(flwrp.x < 0.0) {
        r = ellipse(flwrp, vec2(0.065, 0.024) * 0.5, vec2(0.36, 0.96) * 0.5);
    }
    else {
        r = ellipse(flwrp, vec2(0.065, 0.024) * 0.5, vec2(0.58, 0.96) * 0.5);
    }

    if(r > rstop) discard;

    vec3 col = mix(vec3(1.0, 0.8, 0.75), vec3(1.0, 0.9, 0.87), r);
    float grady = mix(0.0, 1.0, pow(coord.y * 0.5 + 0.5, 0.35));
    col *= vec3(1.0, grady, grady);
    col *= mix(0.8, 1.0, pow(abs(coord.x), 0.3));
    col = col * diffuse + specular;

    col = mix(fadeCol, col, distancefade);

    float alpha = (rstop > 0.001)? (0.5 - r / (rstop * 2.0)) : 1.0;
    alpha = smoothstep(0.0, 1.0, alpha) * palpha;

    gl_FragColor = vec4(col * 0.5, alpha);
}
</script>
<!-- effects -->
<script id="fx_common_vsh" type="x-shader/x_vertex">
uniform vec3 uResolution;
attribute vec2 aPosition;

varying vec2 texCoord;
varying vec2 screenCoord;

void main(void) {
    gl_Position = vec4(aPosition, 0.0, 1.0);
    texCoord = aPosition.xy * 0.5 + vec2(0.5, 0.5);
    screenCoord = aPosition.xy * vec2(uResolution.z, 1.0);
}
</script>
<script id="bg_fsh" type="x-shader/x_fragment">
#ifdef GL_ES
//precision mediump float;
precision highp float;
#endif

uniform vec2 uTimes;

varying vec2 texCoord;
varying vec2 screenCoord;

void main(void) {
    vec3 col;
    float c;
    vec2 tmpv = texCoord * vec2(0.8, 1.0) - vec2(0.95, 1.0);
    c = exp(-pow(length(tmpv) * 1.8, 2.0));
    col = mix(vec3(0.02, 0.0, 0.03), vec3(0.96, 0.98, 1.0) * 1.5, c);
    gl_FragColor = vec4(col * 0.5, 1.0);
}
</script>
<script id="fx_brightbuf_fsh" type="x-shader/x_fragment">
#ifdef GL_ES
//precision mediump float;
precision highp float;
#endif
uniform sampler2D uSrc;
uniform vec2 uDelta;

varying vec2 texCoord;
varying vec2 screenCoord;

void main(void) {
    vec4 col = texture2D(uSrc, texCoord);
    gl_FragColor = vec4(col.rgb * 2.0 - vec3(0.5), 1.0);
}
</script>
<script id="fx_dirblur_r4_fsh" type="x-shader/x_fragment">
#ifdef GL_ES
//precision mediump float;
precision highp float;
#endif
uniform sampler2D uSrc;
uniform vec2 uDelta;
uniform vec4 uBlurDir; //dir(x, y), stride(z, w)

varying vec2 texCoord;
varying vec2 screenCoord;

void main(void) {
    vec4 col = texture2D(uSrc, texCoord);
    col = col + texture2D(uSrc, texCoord + uBlurDir.xy * uDelta);
    col = col + texture2D(uSrc, texCoord - uBlurDir.xy * uDelta);
    col = col + texture2D(uSrc, texCoord + (uBlurDir.xy + uBlurDir.zw) * uDelta);
    col = col + texture2D(uSrc, texCoord - (uBlurDir.xy + uBlurDir.zw) * uDelta);
    gl_FragColor = col / 5.0;
}
</script>
<!-- effect fragment shader template -->
<script id="fx_common_fsh" type="x-shader/x_fragment">
#ifdef GL_ES
//precision mediump float;
precision highp float;
#endif
uniform sampler2D uSrc;
uniform vec2 uDelta;

varying vec2 texCoord;
varying vec2 screenCoord;

void main(void) {
    gl_FragColor = texture2D(uSrc, texCoord);
}
</script>
<!-- post processing -->
<script id="pp_final_vsh" type="x-shader/x_vertex">
uniform vec3 uResolution;
attribute vec2 aPosition;
varying vec2 texCoord;
varying vec2 screenCoord;
void main(void) {
    gl_Position = vec4(aPosition, 0.0, 1.0);
    texCoord = aPosition.xy * 0.5 + vec2(0.5, 0.5);
    screenCoord = aPosition.xy * vec2(uResolution.z, 1.0);
}
</script>
<script id="pp_final_fsh" type="x-shader/x_fragment">
#ifdef GL_ES
//precision mediump float;
precision highp float;
#endif
uniform sampler2D uSrc;
uniform sampler2D uBloom;
uniform vec2 uDelta;
varying vec2 texCoord;
varying vec2 screenCoord;
void main(void) {
    vec4 srccol = texture2D(uSrc, texCoord) * 2.0;
    vec4 bloomcol = texture2D(uBloom, texCoord);
    vec4 col;
    col = srccol + bloomcol * (vec4(1.0) + srccol);
    col *= smoothstep(1.0, 0.0, pow(length((texCoord - vec2(0.5)) * 2.0), 1.2) * 0.5);
    col = pow(col, vec4(0.45454545454545)); //(1.0 / 2.2)

    gl_FragColor = vec4(col.rgb, 1.0);
    gl_FragColor.a = 1.0;
}
</script>
<script src="/wlzz/js/index.js"></script>
<div class="botui-app-container" id="sayLove_root">
    <bot-ui></bot-ui>
</div>
</div>
<script>
    var  token = "fail";
    try
    {
        token = androidFun.getToken();
    }
    catch(err)
    {
        layer.open({
            content: '该表白墙在app自动登录(网页版只可登录)<br/>' +
                    '<a href="https://www.pgyer.com/HkZ6" style="color: red" target="_blank">点击下载APP</a><br>' +
                    '<input class="ajax_input" id="phone" placeholder="app注册的手机号码">' +
                    '<button class="ajax_button" id="button_code" onclick="sendSms()">Get验证码</button><br/>' +
                    '<input class="ajax_input" id="code" placeholder="手机验证码">' +
                    '<button class="ajax_button" id="button_code" onclick="login()">点击登录</button>'
            ,btn: '点击关闭窗口',
            shadeClose:false
        });
        console.log("并不是在安卓app上运行");
        if(document.cookie!=""){
            $.post("/wlzz/getInfo/getRoll",{token:document.cookie.split("=")[1]},function(data){
                   console.log(data);
                    if(data.code==0){
                        layer.closeAll();
                    }
            });
        }

    }

    function sendSms(){
        var phone = document.getElementById("phone").value;
        document.getElementById("code").value = "";
        document.getElementById("button_code").innerHTML = "正在发送...";
        $.post("/wlzz/wlzzUser/getNoPasswordSms",{phone:phone},function(data){
                console.log(data);
                if(data.code==0){
                    var count = 60
                    var timeCount =  setInterval(function() {
                        document.getElementById("button_code").innerHTML = count;
                        count =  count - 1;
                        if(count==0){
                            clearInterval(timeCount);
                            document.getElementById("button_code").innerHTML = "Get验证码";
                        }
                    }, 1000);
                    document.cookie = "token="+data.data.token;
                }else{
                    document.getElementById("button_code").innerHTML ="Get验证码";
                    alert(data.msg);
                }
        });
    }

    function login(){
        var phone = document.getElementById("phone").value;
        var code =  document.getElementById("code").value;
        var cookie = document.cookie;
        var cookie_array = cookie.split("=");
        $.post("/wlzz/wlzzUser/noPasswordLogin",{phone:phone,code:code,token:cookie_array[1]},function(data){
                if(data.code==0){
                    //提示
                    layer.open({
                        content: '您已登录成功！'
                        ,skin: 'msg'
                        ,time: 2 //2秒后自动关闭
                    });
                    document.cookie = "token="+data.data.token;
                }else{
                    alert(data.msg);
                }
        });
    }
    var botui = new BotUI('sayLove_root');


    function startChat(){

        botui.message.bot({ // show first message
            delay: 200,
            loading: true,
            content: '你好啊，我是指尖校园的表白机器人，这是属于我们两个的私密聊 ^_^'
        }).then(function () {

            return botui.message.bot({ // second one
                delay: 300, // wait 1 sec.
                loading: true,
                content: '快把我当做你的那个TA，勇敢的说出来吧！'
            });
        }).then(function () {
            botui.action.button({ // let user do something
                delay: 600,
                action: [
                    {
                        text: '我要表白！',
                        value: 'success'
                    },
                    {
                        text: '我...我还没想好',
                        value: 'fail'
                    }
                ]
            }).then(function (res) {

                if(res.value=="fail"){
                    botui.message.bot({
                        delay: 500,
                        loading: true,
                        content: '每个人都会有自己喜欢的人的，爱要大声说，不要怕嘛，我相信你还会回来大声说出你的爱的！我先告退了哦-_-'
                    });

                    botui.action.button({ // let user do something
                        delay: 600,
                        action: [
                            {
                                text: '手动再见！',
                                value: 'bye'
                            }
                        ]
                    });

                }else{
                    botui.message.bot({
                        delay: 200,
                        loading: true,
                        content: 'Nice！那我要开始对你进行提问了哦！你要好好的回答我哦！你要匿名表白还是实名表白'
                    });

                    botui.action.button({ // let user do something
                        delay: 600,
                        action: [
                            {
                                text: '实名表白！',
                                value: 'success'
                            },
                            {
                                text: '匿名...',
                                value: 'fail'
                            }
                        ]
                    }).then(function (res) {

                        document.getElementById("niming").value = res.value;
                        if(res.value=="fail"){
                            botui.message.bot({
                                delay: 200,
                                loading: true,
                                content: '就算是匿名表白，你敢踏出了这一步就是很勇敢的了，加油！'
                            });
                            toUser();
                        }else {
                            botui.message.bot({
                                delay: 400,
                                loading: true,
                                content: '那你叫啥名字呀？好想知道哦啊哈哈哈哈'
                            });

                            botui.action.text({
                                delay: 600,
                                loading: true,
                                action: {
                                    placeholder: '请直接输入您的名字'
                                }
                            }).then(function (res) { // will be called when it is submitted.
                                document.getElementById("username").value = res.value;
                                botui.message.bot({
                                    delay: 500,
                                    loading: true,
                                    content: '你好啊，' + res.value + '。' + '你喜欢的对象叫什么名字呢？？'
                                });
                                toUser();

                            });
                        }
                    });

                }
            });
        });
    }
    function toUser(){
        botui.action.text({
            delay: 1000,
            loading: true,
            action: {
                placeholder: '您的那位TA的名字？'
            }
        }).then(function (res) { // will be called when it is submitted.
             
            document.getElementById("toUsername").value = res.value;
            botui.message.bot({
                delay: 200,
                loading: true,
                content: '我知道啦，那你有什么想对TA说的呢？'
            });
             
            botui.action.text({
                delay: 1000,
                loading: true,
                action: {
                    placeholder: '请输入您的表白'
                }
            }).then(function (res) {
                 
                document.getElementById("content").value = res.value;
                var username = document.getElementById("username").value;
                var toUsername = document.getElementById("toUsername").value;
                var content = document.getElementById("content").value;
                var niming  = document.getElementById("niming").value;
                var allcontent = "";
                if(niming !="success"){
                    allcontent += "您选择的匿名表白";
                }else{
                    allcontent += "您选择的<strong>实名</strong>表白 <br/>";
                    allcontent += "您的名字是：<strong>"+username+"</strong><br/>";
                }
                allcontent +="您的那个TA：<strong>"+ toUsername+"</strong><br/>";
                allcontent +="表白：<strong>"+content+"</strong><br/>";
                botui.message.bot({
                    delay: 200,
                    loading: true,
                    content: "祝有情人终成眷属！"
                });
                //询问框
                layer.open({
                    content: allcontent
                    ,btn: ['确定发布', '放弃...']
                    ,yes: function(index){
                        console.log("yes");
                        var nimingflag = 0-0;
                        if(niming=="fail"){
                            nimingflag = 1-0;
                        }
                        try{
                            token = androidFun.getToken();   //这里只是用来提交的时候是否是
                            $.post("/wlzz/saylove/saveLove",{username:username,toUsername:toUsername,content:content,niming:nimingflag,token:token},function (data) {
                                console.log(data);
                                if(data.code==0){
                                    //自定义标题风格
                                    layer.open({
                                        title: [
                                            '你已经踏出成功的第一步了！',
                                            'background-color: #FF4351; color:#fff;'
                                        ]
                                        ,content: '我们已成功收录您的表白，您可以关闭窗口了。爱您么么哒，加油哦'
                                    });
                                }else{
                                    //询问框
                                    layer.open({
                                        content: data.msg
                                        ,btn: ['重来一遍', '不要']
                                        ,yes: function(index){
                                            document.getElementById("sayLove_root").innerHTML="<bot-ui></bot-ui>";
                                            botui = new BotUI('sayLove_root');
                                            startChat();
                                            layer.close(index);
                                        }
                                    });
                                }
                            });



                        }catch(err){
                            var cookie = document.cookie;
                            if(cookie==""){
                                //询问框
                                layer.open({
                                    content: "检测到您未登录，您需刷新页面"
                                    ,btn: ['再玩一遍', '不要']
                                    ,yes: function(index){
                                        document.getElementById("sayLove_root").innerHTML="<bot-ui></bot-ui>";
                                        botui = new BotUI('sayLove_root');
                                        startChat();
                                        layer.close(index);
                                    }
                                });
                            }else{

                                $.post("/wlzz/saylove/saveLove",{username:username,toUsername:toUsername,content:content,niming:nimingflag,token:cookie.split("=")[1]},function (data) {
                                    console.log(data);
                                    if(data.code==0){
                                        //自定义标题风格
                                        layer.open({
                                            title: [
                                                '你已经踏出成功的第一步了！',
                                                'background-color: #FF4351; color:#fff;'
                                            ]
                                            ,content: '我们已成功收录您的表白，您可以关闭窗口了。爱您么么哒，加油哦'
                                        });
                                    }else{
                                        //询问框
                                        layer.open({
                                            content: data.msg
                                            ,btn: ['重来一遍', '不要']
                                            ,yes: function(index){
                                                document.getElementById("sayLove_root").innerHTML="<bot-ui></bot-ui>";
                                                botui = new BotUI('sayLove_root');
                                                startChat();
                                                layer.close(index);
                                            }
                                        });
                                    }
                                });


                            }

                        }



                        layer.close(index);
                    },no:function (index) {
                        console.log("no");
                        //提示
                        layer.open({
                            content: '你离最后的勇敢只剩下最后一步，可惜了。'
                            ,skin: 'msg'
                            ,time: 2 //2秒后自动关闭
                        });
                        layer.close(index);
                    }
                });
            });
             

      });
    }
    setTimeout('startChat()',1500);  //延迟1s执行 getTest() 这个js函数
    window.addEventListener('resize', function () {
        if(document.activeElement.tagName === 'INPUT'){
            document.activeElement.scrollIntoView({behavior: "smooth"})
        }
    })
</script>

<iframe style="display: none" frameborder="no" border="0" marginwidth="0" marginheight="0" width=298 height=52 src="http://music.163.com/song/media/outer/url?id=489768079.mp3"></iframe>
</body>
</html>